//核心接口
//在核心接口 引入 axios
//运用axios 可以发送 get和post请求
import axios from 'axios'
import METHODS from './methods'; //引入方式(引入未经定义的魔法值)
import Loading from '../../components/loading/index'

const BASEURL = "https://api.it120.cc/small4" //相同的域名 
// 创建 axios 配置实例
// axios提供的是配置对象
const axiosInstance = axios.create({
    baseURL: BASEURL, //默认会拼接到 请求路径的前面
    // timeout: 100,  //超时时间
})

let loading = null
// 添加请求拦截器
axiosInstance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    //弹起loading()
    // loading = Loading.serve()
    // this.$loading();
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 请求结束后，收起loading组件
// 添加响应拦截器
axiosInstance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // loading.close();
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

//请求方法  export导出的意思
/**
 * 
 * @param {*} method  //请求方式
 * @param {*} url     //url路径，地址
 * @param {*} params  //请求参数
 */
export function request(method, url, params) {
    switch (method) {
        case METHODS.GET:
            return GET(url, params);
        case METHODS.POST:
            return POST(url, params);
    }
}


// 要在核心模块里面提供那种方法
// 第一种是get方法  url:路径（地址）  params：参数
function GET(url, params) {
    return axiosInstance.get(url, params);
}

//第二种是post 方法
function POST(url, params) {
    return axiosInstance.post(url, params)
}




// //上传文件
// function UPLOAD(){

// }

// // 下载文件
// function DOWNLOAD(){

// }